/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.servinf.ani.sincronizador.entities;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author mortiz
 */
@Entity
@Table(catalog = "ani_admin", schema = "public")
@NamedQueries({
    @NamedQuery(name = "Concesion.findAll", query = "SELECT c FROM Concesion c")})
public class Concesion implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "id_concesion")
    private Integer idConcesion;
    @Column(name = "plazo_concesion")
    private Double plazoConcesion;
    @Column(name = "longitud_inicial")
    private Double longitudInicial;
    @Column(name = "longitud_adicional")
    private Double longitudAdicional;
    @Column(name = "valor_inicial")
    private Double valorInicial;
    @Column(name = "fecha_estimada_terminacion")
    @Temporal(TemporalType.DATE)
    private Date fechaEstimadaTerminacion;
    @Column(name = "fecha_inicio_licitacion")
    @Temporal(TemporalType.DATE)
    private Date fechaInicioLicitacion;
    @Column(name = "fecha_suscripcion")
    @Temporal(TemporalType.DATE)
    private Date fechaSuscripcion;
    @Column(name = "fecha_adjudicacion")
    @Temporal(TemporalType.DATE)
    private Date fechaAdjudicacion;
    @Column(name = "fecha_acta_inicio")
    @Temporal(TemporalType.DATE)
    private Date fechaActaInicio;
    @Column(name = "fecha_inicio_precontruccion")
    @Temporal(TemporalType.DATE)
    private Date fechaInicioPrecontruccion;
    @Column(name = "fecha_fin_preconstruccion")
    @Temporal(TemporalType.DATE)
    private Date fechaFinPreconstruccion;
    @Column(name = "fecha_inicio_contruccion")
    @Temporal(TemporalType.DATE)
    private Date fechaInicioContruccion;
    @Column(name = "fecha_fin_construccion")
    @Temporal(TemporalType.DATE)
    private Date fechaFinConstruccion;
    @Column(name = "fecha_inicio_operacion_mantenimiento")
    @Temporal(TemporalType.DATE)
    private Date fechaInicioOperacionMantenimiento;
    @Column(name = "fecha_fin_operacion_mantenimiento")
    @Temporal(TemporalType.DATE)
    private Date fechaFinOperacionMantenimiento;
    @Column(name = "fecha_reversion")
    @Temporal(TemporalType.DATE)
    private Date fechaReversion;
    @Column(name = "fecha_acta_liquidacion")
    @Temporal(TemporalType.DATE)
    private Date fechaActaLiquidacion;
    @Column(name = "fecha_acta_recibo_final")
    @Temporal(TemporalType.DATE)
    private Date fechaActaReciboFinal;
    @JoinColumn(name = "id_proyecto", referencedColumnName = "id_proyecto")
    @ManyToOne(optional = false)
    private Proyecto idProyecto;
    @JoinColumn(name = "concesionaria", referencedColumnName = "id_concesionario")
    @ManyToOne(cascade = CascadeType.ALL)
    private Concesionaria concesionaria;

    @Column(name = "nombre_concesionario")
    private String nombreConcesionario;
    
    public Concesion() {
    }

    public Concesion(Integer idConcesion) {
        this.idConcesion = idConcesion;
    }

    public Integer getIdConcesion() {
        return idConcesion;
    }

    public void setIdConcesion(Integer idConcesion) {
        this.idConcesion = idConcesion;
    }

    public Double getPlazoConcesion() {
        return plazoConcesion;
    }

    public void setPlazoConcesion(Double plazoConcesion) {
        this.plazoConcesion = plazoConcesion;
    }

    public Double getLongitudInicial() {
        return longitudInicial;
    }

    public void setLongitudInicial(Double longitudInicial) {
        this.longitudInicial = longitudInicial;
    }

    public Double getLongitudAdicional() {
        return longitudAdicional;
    }

    public void setLongitudAdicional(Double longitudAdicional) {
        this.longitudAdicional = longitudAdicional;
    }

    public Double getValorInicial() {
        return valorInicial;
    }

    public void setValorInicial(Double valorInicial) {
        this.valorInicial = valorInicial;
    }

    public Date getFechaEstimadaTerminacion() {
        return fechaEstimadaTerminacion;
    }

    public void setFechaEstimadaTerminacion(Date fechaEstimadaTerminacion) {
        this.fechaEstimadaTerminacion = fechaEstimadaTerminacion;
    }

    public Date getFechaInicioLicitacion() {
        return fechaInicioLicitacion;
    }

    public void setFechaInicioLicitacion(Date fechaInicioLicitacion) {
        this.fechaInicioLicitacion = fechaInicioLicitacion;
    }

    public Date getFechaSuscripcion() {
        return fechaSuscripcion;
    }

    public void setFechaSuscripcion(Date fechaSuscripcion) {
        this.fechaSuscripcion = fechaSuscripcion;
    }

    public Date getFechaAdjudicacion() {
        return fechaAdjudicacion;
    }

    public void setFechaAdjudicacion(Date fechaAdjudicacion) {
        this.fechaAdjudicacion = fechaAdjudicacion;
    }

    public Date getFechaActaInicio() {
        return fechaActaInicio;
    }

    public void setFechaActaInicio(Date fechaActaInicio) {
        this.fechaActaInicio = fechaActaInicio;
    }

    public Date getFechaInicioPrecontruccion() {
        return fechaInicioPrecontruccion;
    }

    public void setFechaInicioPrecontruccion(Date fechaInicioPrecontruccion) {
        this.fechaInicioPrecontruccion = fechaInicioPrecontruccion;
    }

    public Date getFechaFinPreconstruccion() {
        return fechaFinPreconstruccion;
    }

    public void setFechaFinPreconstruccion(Date fechaFinPreconstruccion) {
        this.fechaFinPreconstruccion = fechaFinPreconstruccion;
    }

    public Date getFechaInicioContruccion() {
        return fechaInicioContruccion;
    }

    public void setFechaInicioContruccion(Date fechaInicioContruccion) {
        this.fechaInicioContruccion = fechaInicioContruccion;
    }

    public Date getFechaFinConstruccion() {
        return fechaFinConstruccion;
    }

    public void setFechaFinConstruccion(Date fechaFinConstruccion) {
        this.fechaFinConstruccion = fechaFinConstruccion;
    }

    public Date getFechaInicioOperacionMantenimiento() {
        return fechaInicioOperacionMantenimiento;
    }

    public void setFechaInicioOperacionMantenimiento(Date fechaInicioOperacionMantenimiento) {
        this.fechaInicioOperacionMantenimiento = fechaInicioOperacionMantenimiento;
    }

    public Date getFechaFinOperacionMantenimiento() {
        return fechaFinOperacionMantenimiento;
    }

    public void setFechaFinOperacionMantenimiento(Date fechaFinOperacionMantenimiento) {
        this.fechaFinOperacionMantenimiento = fechaFinOperacionMantenimiento;
    }

    public Proyecto getIdProyecto() {
        return idProyecto;
    }

    public void setIdProyecto(Proyecto idProyecto) {
        this.idProyecto = idProyecto;
    }

    public Concesionaria getConcesionaria() {
        return concesionaria;
    }

    public void setConcesionaria(Concesionaria concesionaria) {
        this.concesionaria = concesionaria;
    }
    
    public Date getFechaReversion() {
        return fechaReversion;
    }

    public void setFechaReversion(Date fechaReversion) {
        this.fechaReversion = fechaReversion;
    }

    public Date getFechaActaLiquidacion() {
        return fechaActaLiquidacion;
    }

    public void setFechaActaLiquidacion(Date fechaActaLiquidacion) {
        this.fechaActaLiquidacion = fechaActaLiquidacion;
    }

    public Date getFechaActaReciboFinal() {
        return fechaActaReciboFinal;
    }

    public void setFechaActaReciboFinal(Date fechaActaReciboFinal) {
        this.fechaActaReciboFinal = fechaActaReciboFinal;
    }
    
    public String getNombreConcesionario() {
        return nombreConcesionario;
    }

    public void setNombreConcesionario(String nombreConcesionario) {
        this.nombreConcesionario = nombreConcesionario;
    }


    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idConcesion != null ? idConcesion.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Concesion)) {
            return false;
        }
        Concesion other = (Concesion) object;
        if ((this.idConcesion == null && other.idConcesion != null) || (this.idConcesion != null && !this.idConcesion.equals(other.idConcesion))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.servinf.ani.sincronizador.entities.Concesion[ idConcesion=" + idConcesion + " ]";
    }
    
}
